package com.design.pattern.observe.topic;

import java.util.Observable;

/**
 * @author wangyingjie
 * @date
 * @remark 用jdk自带观察者模式，实现pull的通知方式
 */
public class WeatherData2 extends Observable {
    private float temp;
    private float humidity;
    private float pressure;

    public WeatherData2() {
    }

    /**
     * 气象站更新参数时，通知观察者
     */
    public void messurementChanged(){
        setChanged();//主题状态改变，必须先调用这个方法
        notifyObservers();//通知观察者,由于实现的是pull方式，不需要传更新参数，让观察者自己去拉
    }

    /**
     * 设置参数
     * @param temp
     * @param humidity
     * @param pressure
     */
    public void setMessurement(float temp,float humidity,float pressure){
        this.temp = temp;
        this.humidity = humidity;
        this.pressure = pressure;
        messurementChanged();
    }

    public float getTemp() {
        return temp;
    }

    public float getHumidity() {
        return humidity;
    }

    public float getPressure() {
        return pressure;
    }
}
